Traditionally, telecommunication services such as voice calling have been provided over circuit-switched networks. In such networks, failures of communication links with networks are quickly detected by radios of telecommunication devices and realized by components of the telecommunication devices, resulting in prompt termination or halting of any services dependent on the failed links. In computers utilizing packet-based data networks, by contrast, there is often a delay between the loss of connectivity and the realization of the loss by applications of the computer. This is due to the fact that losses of connectivity are detected independently by components of different layers of a communication stack, such as a Transmission Control Protocol/Internet Protocol (TCP/IP) stack, by use of timers, such as a Real-time Transport Protocol (RTP) timer. With telecommunication services being increasingly provided over packet-based data networks and utilizing communication stacks, components of telecommunication devices, such as voice calling applications, are experiencing delays in realizing failures of communication links.
FIG. 1 illustrates the delay between radio link layer awareness of a communication link failure and application layer awareness of that same failure. As illustrated, a communication stack 102 of a network device (such as, for example, a telecommunication device, an access network node, a core network node, etc.) may have a number of layers, such as a radio link layer 104, a protocol layer 106, and an application layer 108. Such a communication stack 102 may be any sort of communication stack, such as a TCP/IP stack. At a first time, a component at the radio link layer 104 may determine that a communication link is disconnected 110. Upon the failure of the communication link, a user of an application at the application layer 108, such as a voice calling application, may experience muting 112. Other real-time or substantially real-time applications may experience pausing after, e.g., a playback buffer falls below a threshold. Different components at different ones of layers 106 and 108 may then initialize one or more timers, such as an RTP timer or an application timer. These timers may be initialized sequentially, so that one is initialized after another times out. For example, an application timer may be initialized after an RTP timeout 114. During both periods of an RTP timeout 114 and an application timeout 116 of an application timer, a user of an application may continue to experience muting 118. After the expirations of the timers, the application may terminate or halt service. For example, a voice calling application may drop a call. Because each timer may wait for substantial period, e.g., twenty to thirty seconds, it may be forty seconds to one minute before a user application realizes that the communication link has failed. This may result, for instance, in a user continuing to talk for a substantial time in a phone call even after the connection carrying that phone call is lost.